unit IpLists;

interface
uses Classes, Contnrs;

type
  TIntList = class(TList)
  private
  protected
    function GetItem(Index: Integer): integer;
    procedure SetItem(Index: Integer; Value: integer);
  public
    function Add(Value: integer): Integer;
    property Items[Index: Integer]: integer read GetItem write SetItem; default;
  end;

implementation

{ TIntList }

function TIntList.Add(Value: integer): Integer;
begin
  result := inherited Add(pointer(Value));
end;

function TIntList.GetItem(Index: Integer): integer;
begin
  result := integer(inherited Items[Index]);
end;

procedure TIntList.SetItem(Index, Value: integer);
begin
  inherited Items[Index] := pointer(Value);
end;

end.
